package com.xszx.utils;

import com.xszx.vo.AjaxJson;

import java.util.HashMap;
import java.util.Map;

/**
 * 生成响应结果的工具类
 * bug未知，"懒人自用"
 */
public class ResultUtils {

    /**
     * 生成成功的响应
     *
     * @param data 返回给前端的数据
     * @return 成功的响应
     */
    public static AjaxJson success(Map<String, Object> data) {
        AjaxJson returnJson = new AjaxJson();
        returnJson.setSuccess("true");
        returnJson.setCode("200");
        returnJson.setData(data);
        return returnJson;
    }

    /**
     * 生成成功的响应（一键泛型接收
     *
     * @param data 返回给前端的数据
     * @return 成功的响应
     */
    public static <T> AjaxJson success(T data) {
        AjaxJson returnJson = new AjaxJson();
        returnJson.setSuccess("true");
        returnJson.setCode("200");
        Map<String,Object> map = new HashMap<>();
        map.put("data",data);
        returnJson.setData(map);
        return returnJson;
    }

    /**
     * 生成失败的响应
     * 使用默认 500 错误码
     *
     * @param errMsg 错误信息
     * @return 失败的响应
     */
    public static AjaxJson error(String errMsg) {
        AjaxJson returnJson = new AjaxJson();
        returnJson.setSuccess("false");
        returnJson.setData(null);
        returnJson.setErrMsg(errMsg);
        return returnJson;
    }

    /**
     * 生成失败的响应
     * 使用自定义错误码
     *
     * @param code   自定义错误码
     * @param errMsg 错误信息
     * @return 失败的响应
     */
    public static AjaxJson error(String code, String errMsg) {
        AjaxJson returnJson = new AjaxJson();
        returnJson.setSuccess("false");
        returnJson.setCode(code);
        returnJson.setData(null);
        returnJson.setErrMsg(errMsg);
        return returnJson;
    }
}